/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package rosic.forms;

import com.sun.lwuit.Command;
import com.sun.lwuit.Form;
import com.sun.lwuit.Image;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.events.ActionListener;
import com.sun.lwuit.layouts.GridLayout;
import java.io.IOException;
import java.util.Vector;
import rosic.GoogleMaps.GoogleMaps;
import rosic.GoogleMaps.RutaMapa;
import rosic.mapCanvas.MapCanvas;

/**
 *
 * @author David
 */
public class MapaForm implements ActionListener {

    /**
     * formulario con el map canvas y otras opciones
     */
    private Form mapaForm;
    /**
     * midlet principal de la aplicación
     */
    private MidletPrincipal principal;
    private double latitud;
    private double longitud;
    private int zoom;
    private String tipoMapa;
 
  
    private Command volver;
    private GoogleMaps gm;
    private MapCanvas canvas;

    private RutaMapa ruta;

    public MapaForm(MidletPrincipal principal, double latitud, double longitud, int zoom, Vector marcadores, String tipoMapa) {

        try {
        
            this.principal = principal;
            this.latitud = latitud;
            this.longitud = longitud;
            this.zoom = zoom;
            
            this.tipoMapa = tipoMapa;

            mapaForm = new Form("Mapa");

            mapaForm.setLayout(new GridLayout(1, 1));

            gm = new GoogleMaps(MidletPrincipal.key);

            Image map;
            
          // gm.agregarMarcadorRojo(marcador.getLatitud(), marcador.getLongitud(), marcador.getCaracter());
                 //   gm.agregarMarcadorAzul(latitud+0.0005, longitud-0.0005, '1');
                   // gm.agregarMarcadorAmarillo(latitud-0.0005, longitud-0.0005, 'b');
          // System.out.println("Latitud (y): "+latitud);
          //System.out.println("Longitud (x): "+longitud);

           // System.out.println("Latitud Marcador(y): "+marcador.getLatitud());
          // System.out.println("Longitud Marcador(x): "+marcador.getLongitud());

          /*  for(int i=0; i< marcadores.size(); i++){
                Marcador marcador = (Marcador) marcadores.elementAt(i);
                gm.agregarMarcadorRojo(marcador.getLatitud(), marcador.getLongitud(), marcador.getCaracter());
            }*/


            map = gm.retrieveStaticImage(500, 500, latitud, longitud, zoom, "jpg", tipoMapa);

            canvas = new MapCanvas(principal, map, 500, 500, latitud, longitud, mapaForm.getWidth(), mapaForm.getHeight()-70);
            canvas.setMarcadores(marcadores);

            mapaForm.addComponent(canvas);



            volver = new Command("Volver");
            mapaForm.addCommand(volver);
            mapaForm.setCommandListener(this);

        } catch (IOException ex) {
            ex.printStackTrace();
        }


    }

    public void actionPerformed(ActionEvent e) {
        if (e.getCommand() != null) {
            if (e.getCommand().equals(volver)) {
                principal.showPreviousForm();
            }
        }
    }

    /**
     * @return the mapaForm
     */
    public Form getMapaForm() {
        return mapaForm;
    }

    /**
     * @return the ruta
     */
    public RutaMapa getRuta() {
        return ruta;
    }

    /**
     * @param ruta the ruta to set
     */
    public void setRuta(RutaMapa ruta) {
        canvas.setRuta(ruta);
        this.ruta = ruta;
    }

  

  
}
